\chapter{Comparison between different meshing softwares}
\label{chap:meshsoft}
We compared 3 different meshing softwares, and conclude Meshlab is the best.

% ------------------------------------------------------------------------

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../thesis"
%%% End: 
\section{CloudMesh-0.1x}
CloudMesh is an open source software that is readily available on source forge \cite{cloudmesh}. We were able to download the full source code. Unfortunately, the program was developed using Visual Studio, this means that the application can only run natively on Windows machines. Moreover, the program only supports the .off file format, which only includes 3D vertices with no colors. Lastly, the performance is very weak against noisy point clouds. As shown in figure \ref{fig:cloud}, the exterior surface of the soy sauce bottle is very rough. In addition, there should be an empty gap around the handle; however the gap is filled up with undesired meshes. 

\begin{figure}[h]
\centering
\includegraphics[width=0.5\textwidth]{figs2/badmesh.png}
\caption{ The mesh model of the soy sauce bottle using CloudMesh.}
\label{fig:cloud}
\end{figure}


\section{VRMesh v6.0 Studio}
VRMesh is a commercial software that specializes in point cloud to mesh conversion. We were able to test the demo version of the software, which includes a set of useful features. The overall performance is impressive; the operation time ranges between few seconds to a couple minutes. However, the single-user license costs \$2995 \cite{vrmesh}, which is outside of our budget range. 

\section{Meshlab v1.3.0}
MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes \cite{meshlab}. The software supports all major OS platforms: Linux, Windows and MacOSX. The source code can be readily downloaded on its source forge website. The interface is quite simple to use, as there is a step-by-step instruction guide that provide all the details to convert a point cloud to a mesh model \cite{meshpt}. Depending on the size of the point cloud, the operation time varies between a few seconds to a minute. The conversion is fairly accurate, as illustrated in figure \ref{fig:meshlab}. We first subsample the point cloud using the Poisson Sampling algorithm. This process forces all vertices to be uniformly distributed, while also eliminating the noisy data points. Next, we apply the Poisson Surface Construction operation to construct the 3D mesh. It is worth noting that the resulting mesh does not include color information at this point. In the final step, we run the Vertex Attribute Transfer operation to transfer the color information from the original point cloud onto the new mesh model. The transfer algorithm uses a simple closest point heuristic to match the points between the two models.


\begin{figure}[h]
\centering
\includegraphics[width=\textwidth]{figs2/meshlab.png}
\caption{Output results using MeshLab}
\label{fig:meshlab}
\end{figure}


Moreover, MeshLab also allows users to export all the operations described above into a single script file (.mlx). The script can be invoked using a shell script adhere to the specifications of MeshLabServer [10].


Overall, we believe MeshLab is the perfect software to use for this project, as it fulfills all the requirements that we discussed.
